在開始寫 React 之前,先做這些設定會較方便~
- 在 vscode 安裝 ES7 React/Redux/GraphQL/React-Native snippets
- 到 vscode 的 settings.json 加入這些設定
"[javascriptreact]": { "editor.defaultFormatter": "esbenp.prettier-vscode" }, "files.associations": { "*.js": "javascriptreact" }
- 第一個設定是為了讓 react 支援 prettier
- 第二個設定是為了讓 React 支援 jsx,就不用每次都要手動更改成 react,成功後會看到右下角的語言顯示 JavaScript React
Class Component - 有自己的生命周期,有自己的 state,要用 this。
Function Component - 沒有自己的生命周期,沒有自己的 state,也沒有自己的 this,所以要用 Hook 來執行狀態和生命週期。
一般 function:
import React from 'react'
function App() {
return (
<div>
</div>
)
}
export default App
arrow function:
import React from 'react'
const App = () => {
return (
<div>
</div>
)
}
export default App
class :
import React, { Component } from 'react'
export default class App extends Component {
render() {
return (
<div>
</div>
)
}
}
以 function component 為例:
假如 index.js 裡面包含了 Nav.js 和 App.js
import React from "react";
const App = () => {
return(
<div>
<h1>My Profile.</h1>
<p>Welcome</p>
<button>Check my profile.</button>
</div>
);
};
export default App;
import React from "react";
const Nav = () => {
return (
<nav>
<ul>
<li>
<a href="#">Home Page</a>
</li>
<li>
<a href="#">My Profile</a>
</li>
<li>
<a href="#">Link</a>
</li>
</ul>
</nav>
);
};
export default Nav;
- 將 component 顯示到網頁的方式:
- import(引入) component
- 將 component 放到
ReactDOM.render()
裡面,第一個參數是<React.StrictMode></React.StrictMode>
,並將要引入的 component 放到裡面,第二個參數是引入的 component 要放到 HTML 的指定位置。
import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import Nav from "./Nav";
ReactDOM.render(
<React.StrictMode>
<Nav />
<App />
</React.StrictMode>,
document.querySelector("#root")
);